home *** CD-ROM | disk | FTP | other *** search
/ Aminet 30 / Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso / Aminet / dev / mui / bcc_src.lha / Parser / test / App.c < prev    next >
Encoding:
C/C++ Source or Header  |  1997-06-06  |  7.9 KB  |  293 lines

  1. #include <proto/dos.h>
  2. #include <proto/lowlevel.h>
  3. #include <intuition/imageclass.h>
  4.  
  5. #include "App.h"
  6.  
  7. void myputch( void );
  8.  
  9. static const char *centr[] = {
  10.     "Port 1 (mouse)",
  11.     "Port 2 (game)",
  12.     NULL
  13. };
  14.  
  15.  unsigned long mAppOM_NEW( struct IClass *cl, Object *obj, struct opSet* msg )
  16. {
  17.  unsigned long _ret;
  18.  AppData *data, _tdata;
  19.  data = &_tdata;
  20.  memset( data, 0, sizeof( AppData ) );
  21.  obj = (Object*)BCC_DoSuperNew( cl, obj,
  22.  
  23.         MUIA_Application_Author, "RafaĆ® Mantiuk",
  24.         MUIA_Application_Base, "JOYTEST",
  25.         MUIA_Application_Title, "JoyTest",
  26.         MUIA_Application_Version, "$VER: JOYTEST 1.0 "__AMIGADATE__,
  27.         MUIA_Application_Copyright, "Copyright (c)1997, RafaĆ® Mantiuk",
  28.         MUIA_Application_Description, "Joystick test.",
  29.         SubWindow, data->win = WindowObject,
  30.             MUIA_Window_Title, "Joystick test v1.0",
  31.             MUIA_Window_ID, MAKE_ID('M', 'A', 'I', 'N'),
  32.             WindowContents, GroupObject,
  33.                 MUIA_Background, MUII_WindowBack,
  34.                 MUIA_Group_Horiz, TRUE,
  35.                 Child, GroupObject, 
  36.                     Child, data->cycle = CycleObject,
  37.                         MUIA_Cycle_Entries, centr,
  38.                         MUIA_Cycle_Active, 1,        
  39.                         MUIA_CycleChain, TRUE,
  40.                         MUIA_Background, MUII_TextBack,
  41.                     End,
  42.                     Child, data->inf = TextObject,
  43.                         MUIA_Background, MUII_TextBack,
  44.                     End,
  45.                     Child, HVSpace,
  46.                     Child, GroupObject,
  47.                         MUIA_Group_Columns, 3,
  48.                         Child, HVSpace,
  49.                         Child, data->up = ImageObject,
  50.                             MUIA_Image_Spec, "6:11",
  51.                             MUIA_Frame, MUIV_Frame_InputList,
  52.                             MUIA_Image_FontMatch, TRUE,
  53.                             MUIA_Background, MUII_ButtonBack,
  54.                         End,
  55.                         Child, HVSpace,
  56.                         Child, data->left = ImageObject,
  57.                             MUIA_Image_Spec, "6:13",
  58.                             MUIA_Frame, MUIV_Frame_InputList,
  59.                             MUIA_Image_FontMatch, TRUE,
  60.                             MUIA_Background, MUII_ButtonBack,
  61.                         End,
  62.                         Child, HGroup,
  63.                             Child, data->trig = ImageObject,
  64.                                 MUIA_Image_Spec, "6:16",
  65.                                 MUIA_Frame, MUIV_Frame_InputList,
  66.                                 MUIA_Image_FontMatch, TRUE,
  67.                                 MUIA_Background, MUII_ButtonBack,
  68.                                 MUIA_ShortHelp, "First fire button",
  69.                             End,
  70.                             Child, data->strig = TextObject,
  71.                                 MUIA_Frame, MUIV_Frame_InputList,
  72.                                 MUIA_Background, MUII_ButtonBack,
  73.                                 MUIA_Text_Contents, "2nd",
  74.                                 MUIA_ShortHelp, "Second fire button",
  75.                             End,
  76.                         End,
  77.                         Child, data->right = ImageObject,
  78.                             MUIA_Image_Spec, "6:14",
  79.                             MUIA_Frame, MUIV_Frame_InputList,
  80.                             MUIA_Image_FontMatch, TRUE,
  81.                             MUIA_Background, MUII_ButtonBack,
  82.                         End,
  83.                         Child, HVSpace,
  84.                         Child, data->down = ImageObject,
  85.                             MUIA_Image_Spec, "6:12",
  86.                             MUIA_Frame, MUIV_Frame_InputList,
  87.                             MUIA_Image_FontMatch, TRUE,
  88.                             MUIA_Background, MUII_ButtonBack,
  89.                         End,
  90.                         Child, HVSpace,
  91.                     End,
  92.                     Child, HVSpace,
  93.                     Child, data->dval = TextObject,
  94.                         MUIA_Background, MUII_TextBack,
  95.                         MUIA_Text_PreParse, "\33c",
  96.                         MUIA_ShortHelp, "Value returned by\nlowlevel.library/ReadJoyPort()",
  97.                     End,
  98.                 End,
  99.                 Child, BalanceObject,
  100.                 End,
  101.                 Child, GroupObject, 
  102.                     MUIA_Group_Columns, 2,
  103.                     Child, data->lup = ImageObject,
  104.                         MUIA_Image_Spec, "6:11",
  105.                         MUIA_Frame, MUIV_Frame_InputList,
  106.                         MUIA_Image_FontMatch, TRUE,
  107.                         MUIA_Background, MUII_ButtonBack,
  108.                     End,
  109.                     Child, data->EJGup = EJGObject,
  110.                     End,
  111.                     Child, data->ldown = ImageObject,
  112.                         MUIA_Image_Spec, "6:12",
  113.                         MUIA_Frame, MUIV_Frame_InputList,
  114.                         MUIA_Image_FontMatch, TRUE,
  115.                         MUIA_Background, MUII_ButtonBack,
  116.                     End,
  117.                     Child, data->EJGdown = EJGObject,
  118.                     End,
  119.                     Child, data->lleft = ImageObject,
  120.                         MUIA_Image_Spec, "6:13",
  121.                         MUIA_Frame, MUIV_Frame_InputList,
  122.                         MUIA_Image_FontMatch, TRUE,
  123.                         MUIA_Background, MUII_ButtonBack,
  124.                     End,
  125.                     Child, data->EJGleft = EJGObject,
  126.                     End,
  127.                     Child, data->lright =ImageObject,
  128.                         MUIA_Image_Spec, "6:14",
  129.                         MUIA_Frame, MUIV_Frame_InputList,
  130.                         MUIA_Image_FontMatch, TRUE,
  131.                         MUIA_Background, MUII_ButtonBack,
  132.                     End,
  133.                     Child, data->EJGright = EJGObject,
  134.                     End,
  135.                     Child, data->ltrig = ImageObject,
  136.                         MUIA_Image_Spec, "6:16",
  137.                         MUIA_Frame, MUIV_Frame_InputList,
  138.                         MUIA_Image_FontMatch, TRUE,
  139.                         MUIA_Background, MUII_ButtonBack,
  140.                         MUIA_ShortHelp, "First fire button",
  141.                     End,
  142.                     Child, data->EJGtrig = EJGObject,
  143.                     End,
  144.                     Child, data->lstrig = TextObject,
  145.                         MUIA_Frame, MUIV_Frame_InputList,
  146.                         MUIA_Background, MUII_ButtonBack,
  147.                         MUIA_Text_Contents, "2nd",
  148.                         MUIA_ShortHelp, "Second fire button",
  149.                     End,
  150.                     Child, data->EJGstrig = EJGObject,
  151.                     End,
  152.                 End,
  153.             End,
  154.         End
  155. ,
  156.  TAG_MORE, (unsigned long)msg->ops_AttrList,
  157.  TAG_DONE );
  158.  _ret = (unsigned long)obj;
  159.  if( !obj ) return 0;
  160.  data = INST_DATA( cl, obj );
  161.  memcpy( data, &_tdata, sizeof( AppData ) );
  162.  /* UC Beg */
  163.  
  164.  
  165.     DoMethod( data->win, 
  166.         MUIM_Notify,MUIA_Window_CloseRequest,TRUE,
  167.         obj,2,MUIM_Application_ReturnID,MUIV_Application_ReturnID_Quit);
  168.  
  169.     DoMethod( data->left,
  170.         MUIM_Notify, MUIA_Image_State, MUIV_EveryTime,
  171.         data->lleft, 3, MUIM_Set, MUIA_Image_State, MUIV_TriggerValue );
  172.     DoMethod( data->right,
  173.         MUIM_Notify, MUIA_Image_State, MUIV_EveryTime,
  174.         data->lright, 3, MUIM_Set, MUIA_Image_State, MUIV_TriggerValue );
  175.     DoMethod( data->up,
  176.         MUIM_Notify, MUIA_Image_State, MUIV_EveryTime,
  177.         data->lup, 3, MUIM_Set, MUIA_Image_State, MUIV_TriggerValue );
  178.     DoMethod( data->down,
  179.         MUIM_Notify, MUIA_Image_State, MUIV_EveryTime,
  180.         data->ldown, 3, MUIM_Set, MUIA_Image_State, MUIV_TriggerValue );
  181.     DoMethod( data->trig,
  182.         MUIM_Notify, MUIA_Image_State, MUIV_EveryTime,
  183.         data->ltrig, 3, MUIM_Set, MUIA_Image_State, MUIV_TriggerValue );
  184.     DoMethod( data->strig,
  185.         MUIM_Notify, MUIA_Selected, MUIV_EveryTime,
  186.         data->lstrig, 3, MUIM_Set, MUIA_Selected, MUIV_TriggerValue );
  187.  
  188.     set( data->win, MUIA_Window_Open, TRUE );
  189.  
  190.  
  191.  /* UC End */
  192. OM_NEW_exit:
  193. return _ret;
  194. }
  195.  
  196.  
  197. void aAppPortGet( struct IClass *cl, Object *obj, unsigned long *store )
  198. {
  199.  AppData *data = INST_DATA( cl, obj );
  200.  /* UC Beg */
  201.  
  202.     GetAttr( MUIA_Cycle_Active, data->cycle, store );
  203.  
  204.  /* UC End */
  205. }
  206.  
  207.  
  208. void aAppStateSet( struct IClass *cl, Object *obj, unsigned long val )
  209. {
  210.  AppData *data = INST_DATA( cl, obj );
  211.  /* UC Beg */
  212.  
  213.  ULONG v, x;
  214.  STRPTR cont;
  215.  v = val  & JP_DIRECTION_MASK;
  216.  
  217.  
  218.     if( val != data->lastval ) {
  219.         RawDoFmt( "$%lx", (ULONG*)&val, myputch, data->txbuf );
  220.         set( data->dval, MUIA_Text_Contents, data->txbuf );
  221.     }
  222.     data->lastval = val;
  223.  
  224.     switch( val & JP_TYPE_MASK ) {
  225.         case JP_TYPE_JOYSTK:
  226.             cont = "3Joystick detected";
  227.             break;
  228.         case JP_TYPE_MOUSE:
  229.             cont = "Mouse detected";
  230.             break;
  231.         case JP_TYPE_GAMECTLR:
  232.             cont = "Game controller detected";
  233.             break;
  234.         default:
  235.             cont = "Unknown device";
  236.     }
  237.     if( data->lastcont != cont ) {
  238.         set( data->inf, MUIA_Text_Contents, cont );
  239.     }
  240.     data->lastcont = cont;
  241.  
  242.  
  243.     if( ( val & JP_TYPE_MASK ) == JP_TYPE_JOYSTK ) {
  244.  
  245.     if( v & JPF_JOY_UP ) {
  246.         set( data->up, MUIA_Image_State, IDS_SELECTED );
  247.         DoMethod( data->EJGup, MUIM_EJG_Anim, 1 );
  248.     }
  249.     else {
  250.         set( data->up, MUIA_Image_State, IDS_NORMAL );
  251.         DoMethod( data->EJGup, MUIM_EJG_Anim, 0 );
  252.     }
  253.     if( v & JPF_JOY_DOWN ) {
  254.         set( data->down, MUIA_Image_State, IDS_SELECTED );
  255.         DoMethod( data->EJGdown, MUIM_EJG_Anim, 1 );
  256.     }
  257.     else {
  258.         set( data->down, MUIA_Image_State, IDS_NORMAL );
  259.         DoMethod( data->EJGdown, MUIM_EJG_Anim, 0 );
  260.     }
  261.     if( v & JPF_JOY_LEFT ) {
  262.         set( data->left, MUIA_Image_State, IDS_SELECTED );
  263.         DoMethod( data->EJGleft, MUIM_EJG_Anim, 1 );
  264.     }
  265.     else {
  266.         set( data->left, MUIA_Image_State, IDS_NORMAL );
  267.         DoMethod( data->EJGleft, MUIM_EJG_Anim, 0 );
  268.     }
  269.     if( v & JPF_JOY_RIGHT ) {
  270.         set( data->right, MUIA_Image_State, IDS_SELECTED );
  271.         DoMethod( data->EJGright, MUIM_EJG_Anim, 1 );
  272.     }
  273.     else {
  274.         set( data->right, MUIA_Image_State, IDS_NORMAL );
  275.         DoMethod( data->EJGright, MUIM_EJG_Anim, 0 );
  276.     }
  277.  
  278.     x = val & JPF_BUTTON_RED ? 1 : 0;
  279.     set( data->trig, MUIA_Image_State, x ? IDS_SELECTED : IDS_NORMAL );
  280.     DoMethod( data->EJGtrig, MUIM_EJG_Anim, x );
  281.  
  282.     x = val & JPF_BUTTON_BLUE ? 1 : 0;
  283.     set( data->strig, MUIA_Selected, x );
  284.     DoMethod( data->EJGstrig, MUIM_EJG_Anim, x );
  285.  
  286.  
  287.     }
  288.  
  289.  
  290.  /* UC End */
  291. }
  292.  
  293.